package com.real8.romemp.client.ui;

import com.google.gwt.user.client.ui.IsWidget;
import com.real8.romemp.client.place.HireAuxiliaPlace.EMenuSelection;

/**
 * 
 * @author Rutger van der Eijk
 * 
 */
public interface HireAuxiliaView extends IsWidget {
	public interface Presenter {
		/**
		 * On an attempt to select a menu option
		 * 
		 * @param selection
		 */
		void onSelected(EMenuSelection selection);

		/**
		 * On an answer to the hire/fire question
		 */
		void onAnswer(int amount);

		/**
		 * On continue pressed.
		 */
		void onContinue();
	}

	void setPresenter(Presenter presenter);

	/**
	 * Hide all individual elements
	 */
	void hideAll();

	/**
	 * Show menu with supplied data
	 * 
	 * @param availableAuxilia
	 * @param hiredAuxilia
	 */
	void showMenu(int availableAuxilia, int hiredAuxilia);

	/**
	 * Show hire/fire question corresponding to selected menu
	 * 
	 * @param selection
	 */
	void showQuestion(EMenuSelection selection);

	/**
	 * Show warning on possible riots
	 */
	void showRiotWarning();

	/**
	 * Show message on no riots
	 */
	void showNoRiotMessage();

	/**
	 * Show message on riots!
	 */
	void showRiotMessage();

	/**
	 * Show riot loses
	 * 
	 * @param lootedGold
	 * @param killedPopulation
	 * @param killedWorkers
	 */
	void showRiotLoses(int lootedGold, int killedPopulation,
			int killedArtisans, int killedShipBuilders);

	/**
	 * Show (please) continue message / option
	 */
	void showContinue();
}
